/*
 * Copyright 2007 National Bioinformatics Network
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package dgbgui.gui.widgets.layouts;

import java.util.Set;

import org.jgrapht.DirectedGraph;
import org.jgrapht.graph.DefaultDirectedGraph;

import dgbgui.gui.widgets.Widget;
import dgbgui.modeldocument.primitives.DefaultEdgeWithWidget;
import edu.umd.cs.piccolo.PNode;

public abstract class GraphLayout extends Layout {

    public GraphLayout(PNode parent, double margin, double spacing) {
        super(parent,margin,spacing);
    }
    
    public void setGraph(DirectedGraph<Widget,DefaultEdgeWithWidget> graph) {
        m_widgetGraph = graph;
    }
    
    public Set<Widget> vertexSet() {
        return m_widgetGraph.vertexSet();
    }

    public Set<DefaultEdgeWithWidget> edgeSet() {
        return m_widgetGraph.edgeSet();
    }
    
    public Widget getEdgeSource(DefaultEdgeWithWidget e) {
        return m_widgetGraph.getEdgeSource(e);
    }

    public Widget getEdgeTarget(DefaultEdgeWithWidget e) {
        return m_widgetGraph.getEdgeTarget(e);
    }
    
    protected DirectedGraph<Widget,DefaultEdgeWithWidget> m_widgetGraph = 
        new DefaultDirectedGraph<Widget,DefaultEdgeWithWidget>(DefaultEdgeWithWidget.class);


}
